1. Field of the Invention
The present invention relates to a communication apparatus, a communication system, a transmission method, and a computer program product, for transmitting an encrypted content encrypted by an encryption key, to other communication apparatus.
2. Description of the Related Art
In general, a system that distributes a content includes a “single-server type” and a “distributed-server type”. In a single server system, one content server, a license server, and clients are connected to each other via a network, and the content server distributes a content to each client. The distributed content is encrypted, and the license server has key information concerning this encryption. The content server holds the content as E(KT)[C]. KT represents a key called a title key, and C represents a content of a plain text. E(KT)[C] indicates that C is encrypted by KT. The encryption information includes KT. A client B obtains key information from the license server, encrypts the key information using a key KB specific to the client (the client B), and holds the encrypted key information by relating this encrypted key information to the content E(KT)[C] received from the content server. The client B decrypts the key information using the key KB, extracts the title key KT, and decrypts E(KT)[C] using the title key KT, thereby using the content.
In this configuration, at the time of downloading the content E(KT)[C] from the content server, the client B performs authentication and key exchange with the content server. As a result, the client B shares a temporary key KtmpB. The content server encrypts the content E(KT)[C], using the temporary key KtmpB, and transmits a content E(KtmpB)[E(KT)[C]] to the client B. The client B decrypts the content E(KtmpB)[E(KT)[C]] using the temporary key KtmpB shared with the content server by the above authentication and key exchange, and extracts E(KT)[C]. In the configuration, even when the encrypted content E(KtmpB)[E(KT)[C]] is read out unjustly on the route of the network, the unjustly read encrypted content cannot be decrypted without the temporary key KtmpB. That is, by encrypting the content using a temporary key different for each client, the same content can be individualized for each client, thereby restricting an unauthorized use of the content. For example, by differentiating a temporary key KtmpA for a client A from the temporary key KtmpB for the client B, a content E(KtmpA)[E(KT)[C]] distributed to the client A and the E(KtmpB)[E(KT)[C]] distributed to the client B become mutually different data. By individualizing the same content using different encryption keys in this way, an unauthorized use of the content can be restricted.
However, according to the single-server system, a client and a content server communicate with each other at one to one. Therefore, when many clients attempt to receive distributed contents from the content server, the distribution efficiency becomes poor.
On the other hand, according to the distributed-server system, there is a content distribution system called BitTorrent based on the P2P, as shown in Bittorrent Protocol Specification v1.0. In this system, a tracker, a seeder, and a leecher different for each content are connected to each other based on the P2P. The distributed contents are divided into plural pieces. The seeder is a node for distributing the pieces constituting the content, to distribute (upload) the contents. The leecher is a node for receiving each piece constituting the content and for distributing the pieces constituting the content, to receive (download) the content. That is, when the leecher obtains some extent of pieces constituting the content, the leecher becomes a seeder in some cases. As explained above, the seeder includes a leecher that changes to a seeder after receiving total pieces or a part of pieces constituting the content, and a seeder prepared at the system side in advance or during distribution as a seeder from the beginning. The latter seeder is called an initial seeder. The initial seeder holds all pieces or a part of pieces that can constitute a certain content. Hereinafter, unless otherwise specified, a seeder means a seeder or an initial seeder, and a node means a leecher, a seeder, or an initial seeder. The tracker holds node information concerning each node, and provides node information to the leecher, when there is an access from the leecher.
In this configuration, when a certain leecher is going to receive distribution of a content, the leecher first obtains information called a Torrent File. A server (called a marketing server) that operates a service of selling a content to a content provider or a user gives the Torrent File to other node or a marketing server. Further, the other node or the marketing server gives the Torrent File to the leecher. A Torrent File recorded on a recording medium such as a compact-disk read only memory (CD-ROM) is also distributed to leechers in offline. The Torrent File stores tracker information concerning the content, and file information of the content. The tracker information includes a tracker connection destination. The file information includes hash information of each piece constituting the content. The hash information is used to confirm completeness of the pieces. That is, the hash information is used to calculate a hash of a piece downloaded by the leecher, compare the hash with a hash value of the piece, and confirm that the received piece is not tampered.
When the leecher obtains this Torrent File, the leecher connects to the tracker, based on tracker information. The tracker transmits the node information to the leecher. The node information includes a list of connection destinations of a single or plural nodes. The leecher connects to plural nodes based on the node information. Pieces distributed by the nodes are different for each node in many cases. Because the leecher can receive different pieces from the plural nodes, the leecher can receive a content at a high speed.
As explained above, according to the content distribution system based on the P2P, the content is held in dispersion in plural nodes. Therefore, in this system, even when there are many nodes that receive distributed contents, the nodes can receive distributed contents from plural other nodes based on the P2P. Consequently, the distribution efficiency is better than that of the single-server system.
To restrict unauthorized use of a content in the content distribution system capable of distributing contents from plural nodes, it is preferable to protect distributable contents by encryption. However, in this content distribution system, unlike in the single-server system, the same content each leecher receives from the seeder needs to be the same even in the encrypted state. Therefore, it is difficult to distribute contents individually encrypted for each leecher. Consequently, there is a risk that when one key to decrypt the encrypted content is exposed, many contents present in the network can be decrypted.
Particularly, when plural leechers exchange encrypted pieces with each other without via the server and the like, it is difficult to control the operation of each leecher obtaining the content. Accordingly, the influence of the exposure of the key is serious.